package com.test14_枚举;

/**
 * 扩展枚举结构
 */
public class YootkDemo_03 {

    public static void main(String[] args) {
        {
            IMessage msg = Color3.RED;
            System.out.println(msg.getColor());
        }
        {
            IMessage msg = Color4.BLUE;
            System.out.println(msg.getColor());
        }
        {
            System.out.println(Color5.GREEN.getColor());
        }
    }
}

interface IMessage {
    public String getColor();
}

enum Color3 implements IMessage {
    RED("红色"), GREEN("绿色"), BLUE("蓝色");

    private String content;

    Color3(String content) {
        this.content = content;
    }

    /** 传统方式实现接口的方法 */
    @Override
    public String getColor() {
        return this.content;
    }
}

enum Color4 implements IMessage {
    /** 每个枚举项都实现接口的方法 */
    RED {
        @Override
        public String getColor() {
            return "红色";
        }
    }, GREEN {
        @Override
        public String getColor() {
            return "绿色";
        }
    }, BLUE {
        @Override
        public String getColor() {
            return "蓝色";
        }
    };
}

enum Color5 {
    RED {
        @Override
        public String getColor() {
            return "红色";
        }
    }, GREEN {
        @Override
        public String getColor() {
            return "绿色";
        }
    }, BLUE {
        @Override
        public String getColor() {
            return "蓝色";
        }
    };

    /** 定义抽象方法，每个枚举项都实现抽象方法 */
    public abstract String getColor();
}
